Произведен анализ RPM-пакета geetscreen.

* Ссылка: https://getscreen.ru/download/getscreen.rpm
* Дата и время скачивания: 26.05.2023 15:30
* Версия пакета: 1.6.300-1

Были выявлены следующие моменты.

1) Пакет 64-битный, однако следующие зависимости 32-битные:

```
$ rpm -q getscreen.rpm -R | grep ^lib
libjavascriptcoregtk-4.0.so.18
libwebkit2gtk-4.0.so.37
```

Должно быть `libjavascriptcoregtk-4.0.so.18()(64bit)` и `libwebkit2gtk-4.0.so.37()(64bit)`. Также см. [https://nixtux.ru/1124](https://nixtux.ru/1124).

Исполняемый файл `/opt/getscreen/getscreen` упакован чем-то, вроде бы UPX, но утилита `upx` отказывается его распаковать. Если бы он не был упакован, то RPM смог бы проставить зависимости от необходимых библиотек автоматически. Поскольку распаковать упакованный бинарник не удалось, не удалось и оценить правильность зависимостей и цепочек библиотек. Непонятно, для чего он упакован. Представляется целесообразным по возможности избежать его упаковки. В любом случае для детального анализа желателен неупакованный бинарник.

2) Директория `/opt/getscreen` оказывается ничейной после установки (проверить можно командой `rpm -qf /opt/getscreen`), рекомендуем добавить в спек в раздел `%files`: `%dir /opt/getscreen`/

3) При установке и удалении пакета запускается нечто, что это делает — непонятно, просьба объяснить, что и зачем делается:

```
$ rpm -q getscreen.rpm --scripts
preinstall program: /bin/sh
postinstall scriptlet (using /bin/sh):
/opt/getscreen/getscreen -package-install
exit 0
preuninstall scriptlet (using /bin/sh):
if [ $1 = "0" ]; then
    /opt/getscreen/getscreen -package-uninstall
else
    /opt/getscreen/getscreen -package-uninstall-upgrade    
fi
exit 0
postuninstall program: /bin/sh
```

4) В пакете указана лицензия "Getscreen.ru License" (`rpm -q getscreen.rpm -i`), однако в самом пакете ее нет. Рекомендуем добавить в спек в раздел `%files`: `%license LICENSE`, где LICENSE — путь к файлу с текстом лицензии. Он добавить в пакет.

5) При скачивании RPM по ссылке https://getscreen.ru/download/getscreen.rpm он формируется на лету, время сборки и контрольная сумма получаются разными при каждом скачивании, контрольная сумма `/opt/getscreen/getscreen` остается неизменным, но время модификации файла меняется (видно в `rpm -q getscreen.rpm --dump`). Это, наверное, не мешает, но весьма своеобразно.
